const express = require('express');
// 用于生成JWT 令牌
const jwt = require("jsonwebtoken");
// 将JWT字符串解析还原成 JSON对象
const secretKey='fanfan!!!'
const router = express.Router();
/* GET users listing. */
router.get('/:id', (req, res, next) => {
  const userId = req.params.id;
  
  if (userId > 10) { 
    // 人为地抛出一个错误，会被错误处理中间件捕获
    const error = new Error('not found');
    return next(error); // 使用next()传递错误到错误处理中间件
  }
  res.json({
    data: {
      message: "获取用户信息成功",
      user_id: userId,
      username: "用户" + userId,
      email: "user" + userId + "@example.com"
    }
  });
});
router.post('/addUser', (req, res, next) => {
  let id = req.body.id
  // 要配置 express.json() 中间件，解析请求体中的 JSON 数据  不然就是undefined
  console.log(req.body)
  res.send("响应成功"+id)
});

router.post('/login', (req, res) => { 
  // 先忽略登录失败的场景
  // 用户登录成功之后 生成JWT令牌 然后token属性响应给用户
  res.send({
    status: 200, 
    data: {
      message: "登录成功",
      // jwt.sign 生成JWT令牌  参数分别是  1. 要加密的 payload 数据(用户信息对象) 2. 密钥 3. 过期时间
      // 千万不要将密码直接加密到JWT令牌中  因为JWT令牌是可以被解密的
      token: "Bearer " + jwt.sign({ username: req.body.username }, secretKey, { expiresIn: "10s" }),
    },
  })
})























// router.post('/login', (req, res) => { 
//   if (req.body.username === "admin" && req.body.password === "123456") {
//     // 登录成功将登录信息保存到Session中  (只有配置了session中间件才会有req.session)
//     req.session.userinfo = {
//       username: req.body.username,
//       password: req.body.password,
//     }
//     req.session.isLogin = true
//     res.send({
//       status: 200,
//       data: {
//         message: "登录成功",
//       },
//     })
//   }
// })
// // 获取用户姓名的接口
// router.get('/getUsername', (req, res) => {
//   if (req.session.isLogin) {
//     res.send({
//       status: 200,
//       data: {
//         message: "获取用户信息成功",
//         userinfo: req.session.userinfo,
//       },
//     })
//   } else {
//     res.send({
//       status: 401,
//       data: {
//         message: "未登录",
//       },
//     })
//   }
// })
// 清空session  比如退出登录
// router.post('/logout', (req, res) => {
//   req.session.destroy((err) => {
//     if (err) {
//       res.send({
//         status: 500,
//         data: {
//           message: "退出登录失败",
//         },
//       })
//     } else {
//       res.send({
//         status: 200,
//         data: {
//           message: "退出登录成功",
//         },
//       })
//     }
//   })
// })

module.exports = router;
